home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
R-Shows
/
(c)sds.d64
/
sprite editor
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
15KB
|
478 lines
0 REM SPRITE EDITOR WHY
1 REM KEYED IN FROM
2 REM COMPUTE!'S BOOK OF
3 REM C-64 GRAPHICS
4 REM BY
5 REM JOHN MOORE
6 REM DEBUGGED BY
7 REM CARL GARANT
10 REM *** CHANGE SCREEN POINTERS ***
21 PRINT CHR$(8);:LZ$(0)="[207]":LZ$(1)=" 0"
25 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,237,213,0,255,200,0,19,127,240,0,0,0
26 DATA 255,0,254,246,241,242,243,244,999
27 R3=PEEK(53272)
30 POKE 56578,PEEK(56578) OR 3
40 POKE 56576,(PEEK(56576)AND 252)OR 0
50 POKE 53272,(PEEK(53272) AND 240)OR 2
60 POKE 648,196:FF=0
70 REM
71 REM ** SET-UP SPRITE REGISTERS **
72 FOR R=53287 TO 53294: POKE R,14:NEXT
73 FOR R=0 TO 7: POKE 51192+R,R:NEXT: POKE 53269,255: POKE 53264,0
74 FOR R=49152 TO 49663 STEP 6: POKE R,170:POKE R+1,170:POKE R+2,170:NEXT
75 FOR R=49155 TO 49663 STEP 6: POKE R,85:POKE R+1,85:POKE R+2,85:NEXT
76 FOR R=0 TO 14 STEP 2: POKE R+53248,25+R*15:POKE R+53249,52:NEXT
79 REM
80 REM ** TRANSFER CHARACTER SET **
90 REM
100 POKE 56334,PEEK(56334)AND254
110 POKE 1, PEEK(1)AND 251
120 FOR R=53348 TO 55296
130 POKE R-2048, PEEK(R):NEXT
140 POKE 1, PEEK(1) OR 4
150 POKE 56334,PEEK(56334) OR 1
160 REM
170 REM ** DEFINE CHARACTER GRID **
171 DIM G(47),ZX(47),T(64),Y(64),C$(16)
180 REM
190 CG$="[207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][165][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]"
191 CF$=" [165][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]"
195 BK$=" [157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]"
196 BE$=" "
230 REM ** ENABLE SPRITE DISPLAY **
240 REM
250 POKE 53269,255
340 REM ** DEFINE FUNCTION KEYS **
350 REM
351 FOR R= 1TO30: S$=S$+"":NEXT
360 FOR N= 1 TO 8 STEP 2
370 K$(N)="[162][162][162][162][162][157][157][157][157][157] F"+STR$(N)+" [157][157][157][157][157][157][157][146][167][162][162][162][162][162][146] [165]"
380 K$(N+1)="[167][169] F"+STR$(N+1)+" [223][146][165]"
390 P$(N)="[176][192][192][192][174][157][157][157][157][157][194]F"+STR$(N)+"[146][194][157][157][157][157][157][157][157][146][167] [173][192][192][192][189][146] [165]"+"[157]"
400 P$(N+1)="[167][206] F"+STR$(N+1)+" [205][146][165]":NEXT
405 REM
410 REM ** DEFINE KEY POSITIONS **
415 REM
420 FOR R=1 TO 8: K$(R)=""+K$(R):NEXT
430 FOR R= 1 TO 7 STEP 2: K$(R)=""+SP$+K$(R):SP$=SP$+"":NEXT
440 SP$="":FOR R=2TO8 STEP 2: K$(R)=""+SP$+K$(R):SP$=SP$+"":NEXT:SP$=""
450 FOR R=1 TO 8:P$(R)=""+P$(R):NEXT
460 FOR R=1TO7 STEP2: P$(R)=""+SP$+P$(R):SP$=SP$+"":NEXT
470 SP$="":FOR R=2TO8 STEP 2: P$(R)=""+SP$+P$(R):SP$=SP$+"":NEXT
480 REM
490 REM ** DEFINE MESSAGES **
500 REM
510 M$(1)="EDIT.[146][157][157][157][157][157]SAVE.[146][157][157][157][157][157]"
520 M$(1)=M$(1)+"LOAD.[146][157][157][157][157][157]COPY.[146][157][157][157][157][157]CLEAR[146][157][157][157][157][157]"
530 M$(1)=M$(1)+"FILL.[146][157][157][157][157][157]WORK.[146][157][157][157][157][157]FNCTN[146]"
540 M$(2)="REVRS[146][157][157][157][157][157]INVRT[146][157][157][157][157][157]"
550 M$(2)=M$(2)+"FLIP.[146][157][157][157][157][157]SCL R[146][157][157][157][157][157]SCL L[146][157][157][157][157][157]"
560 M$(2)=M$(2)+"SCL U[146][157][157][157][157][157]SCL D[146][157][157][157][157][157]FNCTN[146]"
570 REM
580 REM ** DEFINE RULER LINES **
590 REM
600 L$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][177][157][221][157][145][221][157][145][221][192][192][192][192][192][192][192][192][192]"
610 L$=L$+"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
900 REM
910 REM ** DISPLAY EDIT SCREEN **
920 REM
930 PRINT"[147]";CD$:PRINTL$:PRINTM$(1)
932 PRINT"";:FOR R=0TO19:PRINTCG$;:NEXT:PRINT"[207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][165][147]";
1000 REM
1010 REM ** DISPLAY FUNCTION KEYS **
1020 REM
1030 PRINT"";:FOR R=1TO8: PRINTK$(R);:NEXT: PRINT"";
1035 PRINTM$(1)
1040 A(0)=1:A(1)=3:A(2)=5:A(3)=7:A(4)=2:A(5)=4:A(6)=6:A(7)=8
1050 REM
1060 REM ** GET KEYBOARD ENTRY **
1070 REM
1080 PRINT"ENTER FUNCTION:[146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
1081 REMPRINT" "
1082 GETA$:IFA$=""THEN1080
1084 REM
1085 REM -- SKIP INVALID KEYS --
1086 REM
1087 VA=ASC(A$)
1088 IF (VA>132 AND VA<141) THEN 1130
1089 IF (VA<49 OR VA>56) THEN 1080
1090 GOTO 1205
1100 REM
1110 REM -- GET FUNCTION KEYS --
1120 REM
1130 PRINTP$(A(ASC(A$)-133))
1140 FORR=0TO99:NEXT
1150 PRINTK$(A(ASC(A$)-133));"";
1160 GOTO 1390
1180 REM
1190 REM -- PRINT EDITED SPRITE --
1200 REM
1205 POKE SP*2+53248,25+SP*30
1210 POKE 53264,2^(VA-49):POKE53248+(VA-49)*2,40:SP=VA-49
1220 GOTO 1265
1265 PRINT"ENTRY MODE: [146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
1267 PRINT"SPRITE #[146]";SP+1;"[157] "
1268 PRINT"";:FOR R=0TO19:PRINTCG$;:NEXT:PRINT"[207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][165]";
1270 PRINT"";
1272 LZ$(0)="[207]":LZ$(1)=" [146]"
1275 FOR R=0TO62
1277 IF (R<>0) AND (R/3=INT(R/3)) THEN GOSUB 1310
1278 RR=PEEK(R+(49152+64*SP))
1279 PRINTLZ$(ABS((RRAND128)=128));LZ$(ABS((RRAND64)=64));LZ$(ABS((RRAND32)=32));
1280 PRINTLZ$(ABS((RRAND16)=16));LZ$(ABS((RRAND8)=8));LZ$(ABS((RRAND4)=4));
1281 PRINTLZ$(ABS((RRAND2)=2));LZ$(ABS((RRAND1)=1));
1283 NEXT: GOTO 1080
1310 PRINT"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";:RETURN
1360 REM
1370 REM -- SPECIAL FUNCTION ROUTINES --
1380 REM
1390 IF FF=1 THEN 1500
1400 ON A(ASC(A$)-133) GOTO 2005,1432,1442,1452,1461,1471,2700,1493
1410 GOTO 1170
1430 REM
1431 REM -- SAVE SPRITES --
1432 POKE SP*2+53248,25+SP*30:POKE 53264,0
1433 PRINT"SAVE ON DISK OR[146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
1434 PRINT"CASSETTE? (C/D)[146]"
1435 GETA$:IFA$=""THEN1435
1436 IF A$<>"C" AND A$<>"D" THEN 1087
1437 Q$=A$:GOTO 1760
1440 REM
1441 REM -- LOAD SPRITES --
1442 POKE SP*2+53248,25+SP*30:POKE 53264,0
1443 PRINT"LOAD ON DISK OR[146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
1444 PRINT"CASSETTE? (C/D)[146]"
1445 GET A$:IFA$=""THEN1445
1446 IF A$<>"C" AND A$<>"D" THEN 1087
1447 Q$=A$:GOTO 1910
1450 REM
1451 REM -- (null) A SPRITE --
1452 PRINT"SPRITE TO COPY?[146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
1453 PRINT"ENTER (1-8) [146]"
1454 GET CA$:IF CA$="" THEN 1454
1455 GOTO 1605
1456 IF CA$="" THEN 1454
1459 GOTO 1275
1460 REM --- CLEAR A SPRITE ---
1461 PRINT"CLEARING [146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
1462 PRINT"SPRITE # [146][157][157][157][157][157][157][157]";SP+1
1463 H=49152+64*SP
1464 FOR R=H TO H+63:POKE R,0:NEXT
1465 PRINT"";:FOR R=0TO19:PRINTCG$;:NEXT:PRINT"[207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][165]";
1467 GOTO 1080
1470 REM -- FILL A SPRITE --
1471 PRINT"FILLING [146][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
1472 PRINT"SPRITE # [146][157][157][157][157][157][157][157]";SP+1
1473 H=49152+64*SP
1474 FOR R=H TO H+63: POKE R,255: NEXT
1475 PRINT"";:FOR R=0TO19:PRINTCF$;:NEXT:PRINT" [146][165]
1477 [137] 1080
1490 [143]
1491 [143] -- SWITCH FUNCTION SET --
1492 [143]
1493 FF[178]1:[153]M$(2);"";:[137] 1080
1499 [142]
1500 [145] A([198](A$)[171]133) [137] 1522,1531,1541,1551,1561,1572,1582,1593
1510 [137] 1170
1520 [143]
1521 [143] -- REVERSE SPRITE BITS --
1522 [153]"REVERSING: WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
1523 [153]"SPRITE # WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
1524 H[178]49152[170]64[172]SP
1525 [129] R[178]H [164] H[170]63:[151] R,255[171][194](R):[130]
1529 [137] 1270
1530 [143] -- INVERT SPRITE BITS --
1531 [153]"INVERTING: WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
1532 [153]"SPRITE # WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
1533 H[178]49152[170]64[172]SP
1534 [129] R[178]H [164] H[170]62:T(R[171]H)[178][194](R):[130]
1535 [129] R[178]H [164] H[170]60 [169] 3
1536 [151] R,T(60[171](R[171]H))
1537 [151] R[170]1,T(61[171](R[171]H))
1538 [151] R[170]2,T(62[171](R[171]H)):[130]:[137] 1270
1540 [143] -- FLIP SPRITE BITS --
1541 [153]"FLIPPING: WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
1542 [153]"SPRITE # WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
1543 H[178]49152[170]64[172]SP
1544 [129] R[178]H[164]H[170]62: T(R[171]H)[178][194](R):[130]
1545 [129] R[178]H [164]H[170]60[169]3:[151] R[170]2,T(R[171]H):[151] R[170]1,T(R[170]1[171]H):[151] R,T(R[170]2[171]H):[130]
1546 [129] U[178]H [164] H[170]63:Z[178][194](U):R[178]128[172]([182](Z[175]1)[178]1)[170]64[172]([182]((Z[175]2)[178]2))
1547 R[178]R[170]32[172]([182]((Z[175]4)[178]4))[170]16[172]([182]((Z[175]8)[178]8))[170]8[172]([182]((Z[175]16)[178]16))
1548 R[178]R[170]4[172]([182]((Z[175]32)[178]32))[170]2[172]([182]((Z[175]64)[178]64))[170]1[172]([182]((Z[175]128)[178]128))
1549 R[178][182](R):[151]V,R:[130]:[137]1270
1550 [143] -- SCROLL RIGHT --
1551 [153]"SCROLLING RIGHTWAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
1552 [153]"SPRITE # WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
1553 [129] U[178]49152[170]64[172]SP[164](49152[170]64[172]SP)[170]62 [169] 3
1554 R[178]([194](U)[173]2):R1[178]([194](U[170]1)[173]2):R2[178]([194](U[170]2)[173]2)
1555 [139] [194](U)[173]2[179][177][181]([194](U)[173]2) [167] R1[178]R1[170]128
1556 [139] [194](U[170]1)[173]2[179][177][181]([194](U[170]1)[173]2) [167] R2[178]R2[170]128
1557 [139] [194](U[170]2)[173]2[179][177][181]([194](U[170]2)[173]2) [167] R[178]R[170]128
1558 [151] U,R:[151]U[170]2,R2
1559 [130]: [137]1270
1560 [143] --- SCROLL LEFT ---
1561 [153]"SCROLLING LEFT WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
1562 [153]"SPRITE # WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
1563 [129]U[178]49152[170]64[172]SP[164](49152[170]64[172]SP)[170]62[169]3:R[178][194](U)[172]2:R1[178][194](U[170]1)[172]2:R2[178][194](U[170]2)[172]2
1564 [139] [194](U)[178][177]128 [167] R2[178]R2[170]1
1565 [139] R2[177]255 [167] R2[178]R2[171]256
1566 [139] [194](U[170]1)[178][177]128 [167] R[178]R[170]1
1567 [139] R[177]255 [167] R[178]R[171]256
1568 [139] [194](U[170]2)[178][177]128 [167] R1[178]R1[170]1
1569 [139] R1[177]255 [167] R1[178]R1[171]256
1570 [151] U,R:[151] U[170]1,R1:[151] U[170]2,R2:[130]: [137] 1270
1571 [143] --- SCROLL UP ---
1572 [153]"SCROLLING UP WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
1573 [153]"SPRPEEKTE # CMDCMDCMDCMDCMDCMDCMD";SP[170]1
1574 U[178]49152[170]64[172]SP:Y[178][194](U):Y1[178][194](U[170]1):Y2[178][194](U[170]2)
1575 [129] R[178]0 [164] 59 [169] 3
1576 [151] U[170]R,[194](U[170]R[170]3):[151] U[170]R[170]1,[194](U[170]R[170]4):[151] U[170]R[170]2,[194](U[170]R[170]5):[130]
1577 [151]U[170]60,Y:[151]U[170]61,Y1:[151]U[170]62,Y2
1578 [137] 1270
1580 [143]
1581 [143] --- SCROLL DOWN ---
1582 [153]"SCROLLING DOWN WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
1583 [153]"SPRITE # X WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
1584 U[178]49152[170]64[172]SP:Y[178][194](U[170]60):Y1[178][194](U[170]61):Y2[178][194](U[170]62)
1585 [151]U[170]62,[194](U[170]62[171]3)
1586 [129] M[178]59 [164] 2 [169] [171]3
1587 [151] U[170]M,[194](U[170]M[171]3):[151]U[170]M[170]1,[194](U[170]M[171]2):[151] U[170]M[170]2,[194](U[170]M[171]1):[130]
1588 [151]U,Y:[151]U[170]1,Y1:[151]U[170]2,Y2
1589 [137] 1270
1590 [143]
1591 [143] -- SWITCH FUNCTION SET --
1592 [143]
1593 FF[178]0: [153]M$(1);"";:[137]1080
1599 [142]
1600 [143]
1601 [143] ** [211] SPRITE ROUTINE **
1602 [143]
1605 DA[178][198](CA$)
1610 [139] (DA[177]132 [175] DA[179]141) [167] VA[178]DA:[137] 1130
1620 [139] (DA[179]49 [176] DA[177]56) [167] 1080
1690 VJ[178]49152[170]64[172]SP:JJ[178]49152[170]64[172](DA[171]49)
1700 [129] R[178]0 [164] 63
1710 [151] VJ[170]R,[194](JJ[170]R):[130]
1720 [137] 1270
1730 [143]
1740 [143] ** SAVE SPRITE ROUTINE **
1750 [143]
1760 [153]"SAVE:(NAME) WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
1765 [153]"------.SPR CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
1770 LL[178]0:NM$[178]""
1775 [129] R[178]0 [164] 30: [153]"-WAITCMD";
1780 [161] A$:[139]A$[178]""[167] [130]
1790 [139]A$[179][177]""[167] 1840
1800 [129] R[178]0[164]30:[153]"-CMD";
1810 [161] A$:[139]A$[178]"" [167] [130]
1820 [139]A$[179][177]""[167] 1840
1830 [137] 1775
1840 [139]A$[178][199](20)[176]A$[178][199](148)[176]A$[178][199](13)[176]A$[178][199](34)[176]A$[178]"ON"[167] 1775
1845 [139]A$[178]""[176]A$[178]"CMD"[167]1775
1847 [139] [198](A$)[177]132 [175] [198](A$)[179]141 [167] 1080
1850 [153]A$;
1855 NM$[178]NM$[170]A$:LL[178]LL[170]1:[139]LL[178]6[167]1870
1860 [137] 1775
1870 NM$[178]NM$[170]".SPR"
1872 [129] R[178]53248 [164] 53294:ZX(R[171]53248)[178][194](R):[130]
1874 [151] SP[172]2[170]53248,25[170]SP[172]30:[151] 53264, 0
1875 [139] Q$[178]"C"[167] 1890
1880 [140]:[159] 1,8,4,"@:"[170]NM$[170]",W":R[178]0
1881 [135] F: [139] F[179][177]999 [167] [151] R[170]53248,F:R[178]R[170]1:[137]1881
1882 [129] R[178]49152 [164] 49663
1883 [153]"";R[171]49152
1884 [152]1,[194](R)
1885 [130]:[129] R[178]53248 [164] 53294:[151] R,ZX(R[171]53248):[130]
1888 [160]1:[153]" ";:[137]1080
1890 [159]1,1,1,NM$:[137] 1881
1900 [143]
1901 [143] *** LOAD SPRITES ROUTINE ***
1902 [143]
1910 [153]"LOAD:(NAME) WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
1913 [140]
1915 [153]"------.SPRWAIT CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
1920 LL[178]0:NM$[178]""
1925 [129] R[178]0[164]30:[153]"-WAITCMD";
1930 [161] A$:[139] A$[178]""[167] [130]
1935 [139]A$[179][177]""[167] 1960
1940 [129] R[178]0[164]30:[153]"-CMD";
1945 [161] A$:[139]A$[178]""[167] [130]
1950 [139]A$[179][177]""[167] 1960
1955 [137] 1925
1960 [139]A$[178][199](20)[176]A$[178][199](148)[176]A$[178][199](13)[176]A$[178][199](34)[176]A$[178]"ON"[167] 1925
1965 [139]A$[178]""[176]A$[178]""[176]A$[178]"CMD"[167]1925
1970 [139] [198](A$)[177]132 [175] [198](A$)[179]141 [167] 1080
1975 [153]A$;
1980 NM$[178]NM$[170]A$:LL[178]LL[170]1:[139]LL[178]6[167]1990
1985 [137] 1925
1990 NM$[178]NM$[170]".SPR"
1991 [129] R[178]53248 [164] 53294:ZX(R[171]53248)[178][194](R):[130]
1992 [151] SP[172]2[170]53248,25[170]SP[172]30:[151] 53264, 0
1993 [139] Q$[178]"C"[167] 2001
1994 [159] 1,8,4,NM$[170]",R"
1995 R[178]0:[135] F:[139]F[179][177]999 [167] [151] R[170]53248,F:R[178]R[170]1: [137] 1995
1996 [129] R[178]49152 [164] 49663
1997 [153]"";R[171]49152
1998 [132]1,A:[151] R,A:[130]
1999 [129] R[178]53248 [164] 53294:[151] R,ZX(R[171]53248):[130]
2000 [160]1:[153]" ";:[137] 1080
2001 [159] 1,1,0,NM$:[137] 1995
2002 [143]
2003 [143] *** SPRITE EDIT ROUTINE ***
2004 [143]
2005 [153]"EDIT MODE: WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
2010 [139] [194](53264)[178]0 [167] [153]"WHICH SPRITE?WAIT CMDCMDCMDCMDCMDCMDCMD";:[137] 1082
2015 LO[178]50336:SV[178][194](LO) :SM[178](49152[170](SP[172]64)):EX[178]7 :GT[178]SC: BY[178]0
2020 [129] R[178]0[164]30:[151]LO,SV
2030 [161] A$:[139]A$[178]""[167] [130]
2040 [139]A$[179][177]""[167] 2090
2050 [129] R[178]0[164]30: [151] LO,102
2060 [161] A$:[139]A$[178]""[167] [130]
2070 [139]A$[179][177]""[167] 2090
2080 [137] 2020
2090 [139]A$[178]"ON"[167] 2200
2091 [139]A$[178]""[167] 2100
2092 [139]A$[178]"CMD"[167] 2300
2093 [139]A$[178]""[167] 2400
2094 [139]A$[178][199](32) [175] SV[178]160 [167] 2500
2095 [139]A$[178][199](32) [175] SV[178]79 [167] 2600
2099 [151] LO,SV:[137] 1087
2100 [151] LO,102:[129] R[178]0[164]40:[130]
2110 [139] GT[178][177]SC[170]60 [167] 2020
2120 [151] LO,SV: LO[178]LO[170]40: GT[178]GT[170]3: SV[178][194] (LO):SM[178]SM[170]3: [137] 2020
2200 [151] LO,102:[129] R[178]1[164]40:[130]
2210 [139] GT[178][179]SC[170]2 [167] 2020
2220 [151] LO,SV: LO[178]LO[171]40: GT[178]GT[171]3: SV[178][194](LO):SM[178]SM[171]3: [137] 2020
2300 [151] LO,102:[129] R[178]0[164]40:[130]
2310 [139] EX[178]7 [175] BY[178]0 [167] 2020
2315 [139]EX[178]7[167][151]LO,SV:LO[178]LO[171]1:EX[178]0:SM[178]SM[171]1:GT[178]GT[171]1:SV[178][194](LO):BY[178]BY[171]1:[137]2020
2320 [151] LO,SV:LO[178]LO[171]1:EX[178]EX[170]1:SV[178][194](LO):[137] 2020
2400 [151] LO,102:[129] R[178]0[164]40: [130]
2410 [139] EX[178]0 [175] BY[178]2 [167] 2020:SV[178][194](LO):[137] 2020:SV[178][194](LO):BY[178]BY[171]1:[137]20
2415 [139]EX[178]0[167][151]LO,SV:LO[178]LO[170]1:EX[178]7:SM[178]SM[170]1:GT[178]GT[170]1:SV[178][194](LO):BY[178]BY[170]1:[137]2020
2420 [151] LO,SV:LO[178]LO[170]1:EX[178]EX[171]1:SV[178][194](LO):[137] 2020
2500 [151] LO,79: [151] SM,[194](SM)[171](2[174]EX):SV[178]79:[137] 2020
2600 [151] LO, 160:[151] SM,[194](SM)[170](2[174]EX):SV[178]160:[137] 2020
2700 [143]
2701 [143] REM *** WORK SPACE ROUTINE ***
2702 [143]
2705 [153]"ENABLE SPRITE WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
2707 [153]"WORK AREA WAIT"
2709 [129] R[178]0[164]14 [169] 2:[151] R[170]53248,25[170]R[172]15:[151]R[170]53249,52:[130]:[151]53264,0
2710 W$(1)[178]"SEL..CMDCMDCMDCMDCMDCOLORWAITCMDCMDCMDCMDCMD"
2711 C$(0)[178]"STOP":C$(1)[178]"":C$(2)[178]"":C$(3)[178]"OPEN":C$(4)[178]"CLR":C$(5)[178]"":C$(6)[178]""
2712 C$(7)[178]"SYS":C$(8)[178]"FOR":C$(9)[178]"VERIFY":C$(10)[178]"DEF":C$(11)[178]"LIST":C$(12)[178]"PRINT#":C$(13)[178]"PRINT"
2713 C$(14)[178]"CONT":C$(15)[178]"POKE"
2720 W$(1)[178]W$(1)[170]"BCKGDCMDCMDCMDCMDCMDAD/DLCMDCMDCMDCMDCMDMOVE WAITCMDCMDCMDCMDCMD"
2730 W$(1)[178]W$(1)[170]"2X HZCMDCMDCMDCMDCMD2X VTCMDCMDCMDCMDCMDFNCTNWAIT"
2740 [153]"";:[129] R[178]0[164]19:[153] BK$;:[130]:[153] BE$;W$(1)
2745 [143]
2747 [143] --- GET WORK SPACE COMMANDS --
2749 [143]
2750 [153]"ENTER FUNCTION:WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
2751 [153]" "
2759 [161] W$:[139] W$[178]""[167]2759
2760 WA[178][198](W$)
2770 [139] (WA[177]132 [175] WA[179]141) [167] 3000
2780 [139] (WA[179]48 [176] WA[177]56) [167] 2750
2785 WS[178]WA[171]49
2787 [139] AD[178]1 [167] 2800
2788 [139] MV[178]1 [167] 3450
2789 [137] 2750
2791 [143]
2792 [143] -- GET SPRITES ROUTINE --
2793 [143]
2800 [139] [194](53249[170]WS[172]2)[178][177]85 [167] 2900
2810 [151] 53248[170]WS[172]2,24:[151] 53249[170]WS[172]2,85:[137] 2759
2900 [151] 53248[170](WS[172]2),25[170](WS[172]2)[172]15:[151] 53249[170](WS[172]2),52:[137]2759
2910 [161] W$:[139] W$[178]"" [167] 2910
2920 WA[178][198](W$)
2930 [139] (WA[177]132 [175] WA[179]141) [167] 3000
2940 [139] (WA[179]48 [176] WA[177]57) [167] 2750
2950 WS[178]WA[171]49
2960 [139] AD[178]1 [167] 2800
3000 [145] WA[171]132 [137] 3150,3325,3420,3620,3222,3510,3720,3800
3100 [143]
3101 [143] -- SELECT ROUTINE --
3102 [143]
3110 [139] I[178]15[167] I[178][171]1
3120 I[178]I[170]1:[142]
3150 [153]"SELECT DISABLEDWAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
3160 [153]"USE A/D OR MOVEWAIT"
3170 [129] R[178]0 [164] 1500: [130]: [137] 2750
3200 [143]
3210 [143] -- SPRITE COLOR ROUTINE --
3220 [143]
3222 [153]"CHANGE SPRITE WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
3223 [153]"COLOR (USE SEL)WAIT"
3230 [161] W$: CL$[178]W$:[139] W$[178]""[167] 3230
3231 WA[178][198](W$)
3232 [139] (WA[177]133 [175] WA[179]141) [167] 3000
3233 [139] (WA[177]47 [175] WA[179]57) [167] WS[178]WA[171]49:[137] 3270
3240 [139]W$[179][177]"INPUT"[167] 2760
3250 [141] 3110
3260 [151] 53287[170]WS,I:[137] 3230
3270 [153]"SELECTED WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
3275 [153]"SPRITE # WAITCMDCMDCMDCMDCMDCMDCMD";WS[170]1
3280 [137] 3230
3300 [143]
3310 [143] -- BACKGROUND COLOR ROUTINE --
3320 [143]
3325 [153]"USE SEL TO WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
3326 [153]"CHANGE BACKGRNDWAIT"
3330 [161] CL$: [139] CL$[178]""[167] 3330
3340 [139] CL$[179][177]"INPUT"[167] W$[178]CL$:[137] 2760
3350 [141] 3100
3360 [153]"";C$(I);
3370 [153]"";:[129] R[178]0[164]19:[153]"";BK$;:[130]:[153]BE$;"CONTWAIT";:[137] 3330
3400 [143]
3410 [143] -- MOVE SPRITES ROUTINE --
3420 [153]"MOVING WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
3421 [153]"SPRITE # WAITCMDCMDCMDCMDCMDCMDCMD";WS[170]1
3425 [161] W$:[139]W$[178]"" [167] 3425
3427 WA[178][198](W$)
3429 [139] W$[178]""[176] W$[178]"ON"[176] W$[178]""[176] W$[178]"CMD" [167] 3435
3430 [139] (WA[177]133 [175] WA[179]141) [167] 3000
3432 [139] (WA[177]47 [175] WA[179]57) [167] WS[178]WA[171]49: [137] 3480
3435 [139] W$[178]""[167] 3460
3436 [139] W$[178]"ON"[167] 3465
3437 [139] W$[178]""[167] 3450
3438 [139] W$[178]"CMD"[167] 3455
3450 [139] [194] (53248[170]WS[172]2)[178]192 [167] 3425
3451 [151] 53248[170]WS[172]2,[194](53248[170]WS[172]2)[170]1:[137] 3425
3455 [139] [194](53248[170]WS[172]2)[178]25 [167] 3425
3456 [151] 53248[170]WS[172]2,[194](53248[170]WS[172]2)[171]1:[137] 3425
3460 [139] [194](53249[170]WS[172]2)[178]228 [167] 3425
3461 [151] 53249[170]WS[172]2,[194](53249[170]WS[172]2)[170]1:[137] 3425
3465 [139] [194](53249[170]WS[172]2)[178]79 [167] 3425
3466 [151] 53249[170]WS[172]2,[194](53249[170]WS[172]2)[171]1:[137] 3425
3480 [153]"MOVING WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
3481 [153]"SPRITE # WAITCMDCMDCMDCMDCMDCMDCMD";WS[170]1:[137] 3425
3500 [143]
3510 [143] -- ADD/DELETE SPRITES --
3520 [153]"ADD OR DELETE WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
3530 [153]"SPRITES WAIT"
3540 AD[178]1:MV[178]0:[137] 2759
3600 [143]
3610 [143] -- EXPAND SPRITES VERTICAL --
3620 [143]
3622 [153]"2X VERTICAL WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
3623 [153]"EXPANSION WAIT"
3660 [139] ([194](53271)[175] (2[174]WS))[178]0 [167] [151] 53271,[194](53271)[170](2[174]WS):[137] 2750
3661 [151]53271,[194](53271)[171](2[174]WS):[137] 2750
3700 [143]
3710 [143] -- EXPAND SPRITES HORIZONTAL --
3720 [143]
3722 [153]"2X HORIZONTAL WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
3723 [153]"EXPANSION WAIT"
3760 [139]([194](53277) [175] (2[174]WS))[178]0 [167] [151] 53277,[194](53277)[170](2[174]WS):[137] 2750
3761 [151] 53277,[194](53277)[171](2[174]WS):[137] 2750
3800 [143]
3810 [143] -- RETURN TO MAIN ROUTINE --
3815 [153]"EXITING SPRITE WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
3817 [153]"WORK AREA WAIT"
3820 [153]"";:[129] R[178]0[164]19:[153]CG$;:[130]:[153]"(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)FN";
3825 [129] R[178]0 [164] 14 [169] 2:[151] R[170]53248,25[170]R[172]15:[151] R[170]53249,52:[130]:[151]53264,0
3830 [153] M$(1);:[129] R[178]53287 [164] 53294:[151]R,14:[130]:[151]53277,0:[151]53271,0
3840 [137]1080